package java_1_12.book_management.book;

import java.util.ArrayList;
import java.util.List;

/**
 * 书架类-存放一本本具体的图书-程序操作的是书架类
 * 最终肯定是找到具体的书架操作对应书
 */
public class BookList {
    //books存放了所有当前书架中的书，每个Book对象就是一本书的实体
    private static List<Book> books=new ArrayList<>();
    //booksName存放了所有书本名称，查询书籍等都是通过书名来操作
    private static List<String> booksName=new ArrayList<>();
    //初始化books和booksName，默认将四大名著放入书架
    //静态变量使用static代码块初始化
    static{
        books.add(new Book("三国演义","罗贯中",66.6,"小说"));
        books.add(new Book("红楼梦","曹雪芹",88.8,"小说"));
        books.add(new Book("水浒传","施耐庵",55.6,"小说"));
        books.add(new Book("西游记","吴承恩",88.6,"小说"));
        booksName.add("三国演义");
        booksName.add("红楼梦");
        booksName.add("水浒传");
        booksName.add("西游记");
    }

    public void displayBooks() {
        //展示所有书籍，为什么在这个类中而不是DisplayAllBooks,因为books在这个类。
        //遍历所有书本，打印即可（打印：Book类要拓展toString方法）
        for (Book book :books) {
            System.out.println(book);
        }
    }
    public boolean contains(String booksName) {
        //动态数组中有一个方法contains:
        // 查询当前booksName是否存在(BookList类调用booksName【这个是存放了所有书籍名称】,()内传入booksName(重名了，这个是传入的书籍名称)
        return BookList.booksName.contains(booksName);

    }

    public void add(Book book) {
        books.add(book);
        booksName.add(book.getBookName());
    }
}
